using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("TraySection")]
	public class TraySection : MonoBehaviour
	{
		[Attribute38("TraySection.OnDoorStateChangedCallbackData")]
		public class OnDoorStateChangedCallbackData : MonoClass
		{
			public object m_callbackData => method_3<object>("m_callbackData");

			public string m_animationName => method_4("m_animationName");

			public OnDoorStateChangedCallbackData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public OnDoorStateChangedCallbackData(IntPtr address)
				: this(address, "OnDoorStateChangedCallbackData")
			{
			}
		}

		public GameObject m_door => method_3<GameObject>("m_door");

		public CollectionDeckBoxVisual m_deckBox => method_3<CollectionDeckBoxVisual>("m_deckBox");

		public static float DOOR_ANIM_SPEED => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "TraySection", "DOOR_ANIM_SPEED");

		public string DOOR_OPEN_ANIM_NAME => method_4("DOOR_OPEN_ANIM_NAME");

		public string DOOR_CLOSE_ANIM_NAME => method_4("DOOR_CLOSE_ANIM_NAME");

		public static Vector3 DECKBOX_LOCAL_EULER_ANGLES => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "TraySection", "DECKBOX_LOCAL_EULER_ANGLES");

		public bool m_isOpen => method_2<bool>("m_isOpen");

		public bool m_wasTouchModeEnabled => method_2<bool>("m_wasTouchModeEnabled");

		public bool m_deckBoxShown => method_2<bool>("m_deckBoxShown");

		public bool m_showDoor => method_2<bool>("m_showDoor");

		public Transform m_parent => method_3<Transform>("m_parent");

		public TraySection(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TraySection(IntPtr address)
			: this(address, "TraySection")
		{
		}

		public void ShowDoor(bool show)
		{
			method_8("ShowDoor", show);
		}

		public bool IsOpen()
		{
			return method_11<bool>("IsOpen", Array.Empty<object>());
		}

		public Bounds GetDoorBounds()
		{
			return method_11<Bounds>("GetDoorBounds", Array.Empty<object>());
		}

		public void OpenDoor()
		{
			method_9("OpenDoor", new Class276.Enum20[0]);
		}

		public void OpenDoorImmediately()
		{
			method_9("OpenDoorImmediately", new Class276.Enum20[0]);
		}

		public void CloseDoor()
		{
			method_9("CloseDoor", new Class276.Enum20[0]);
		}

		public void CloseDoorImmediately()
		{
			method_9("CloseDoorImmediately", new Class276.Enum20[0]);
		}

		public bool IsDeckBoxShown()
		{
			return method_11<bool>("IsDeckBoxShown", Array.Empty<object>());
		}

		public void EnableDoors(bool show)
		{
			method_8("EnableDoors", show);
		}

		public void ShowDeckBoxNoAnim()
		{
			method_8("ShowDeckBoxNoAnim");
		}

		public void ClearDeckInfo()
		{
			method_8("ClearDeckInfo");
		}

		public bool HideIfNotInBounds(Bounds bounds)
		{
			return method_11<bool>("HideIfNotInBounds", new object[1] { bounds });
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Update()
		{
			method_8("Update");
		}
	}
}
